//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
// Include lesser types.
#include "Sse4.hpp"


#if defined( _WINDOWS ) || ( defined( __APPLE__ ) && (defined( __AVX2__ ) || defined( __AVX__ )) )
namespace Math
{
	namespace Simd
	{
		typedef __m256i		I8x32_t;
		typedef __m256i		U8x32_t;
		typedef __m256i		I16x16_t;
		typedef __m256i		U16x16_t;
		typedef __m256i		I32x8_t;
		typedef __m256i		U32x8_t;
		typedef __m256i		I64x4_t;
		typedef __m256i		U64x4_t;
		typedef __m256		F32x8_t;
		typedef __m256d		F64x4_t;

		//////////////////////////////////////////////////////////////////////////
		// Avx override implementation.
		struct Avx : public Sse4
		{
		};
	}
}
#endif
